home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 March / EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso / earcd / devel / vbcc-ppc-src / vlink / ar.h < prev    next >
C/C++ Source or Header  |  1999-01-01  |  2KB  |  47 lines

  1. /* $VER: vlink ar.h V0.3 (21.03.98)
  2.  *
  3.  * This file is part of vlink, a portable linker for multiple
  4.  * object formats.
  5.  * Copyright (c) 1997-99  Frank Wille
  6.  *
  7.  * vlink is freeware and part of the portable and retargetable ANSI C
  8.  * compiler vbcc, copyright (c) 1995-99 by Volker Barthelmann.
  9.  * vlink may be freely redistributed as long as no modifications are
  10.  * made and nothing is charged for it. Non-commercial usage is allowed
  11.  * without any restrictions.
  12.  * EVERY PRODUCT OR PROGRAM DERIVED DIRECTLY FROM MY SOURCE MAY NOT BE
  13.  * SOLD COMMERCIALLY WITHOUT PERMISSION FROM THE AUTHOR.
  14.  *
  15.  *
  16.  * v0.3  (21.03.97) phx
  17.  *       File created.
  18.  */
  19.  
  20.  
  21. #define ARMAG     "!<arch>\n"   /* ar "magic number" */
  22. #define SARMAG    8             /* strlen(ARMAG) */
  23. #define AR_EFMT1  "#1/"         /* extended format #1, long names (BSD-ar) */ 
  24. #define ARFMAG    "`\n"
  25. #define MAXARNAME 255           /* max. size for file names */
  26.  
  27. struct ar_hdr {
  28.   char ar_name[16];             /* name */
  29.   char ar_date[12];             /* modification time */
  30.   char ar_uid[6];               /* user id */
  31.   char ar_gid[6];               /* group id */
  32.   char ar_mode[8];              /* octal file permissions */
  33.   char ar_size[10];             /* size in bytes */
  34.   char ar_fmag[2];              /* consistency check */
  35. };
  36.  
  37. struct ar_info {
  38.   char *arname;                 /* name of this archive */
  39.   struct ar_hdr *next;          /* next archive member header, or NULL */
  40.   unsigned long arlen;          /* remaining bytes in archive */
  41.   char *long_names;             /* pointer to long names region (GNU-ar) */
  42.   char name[MAXARNAME+1];       /* null-terminated file name */
  43.   struct ar_hdr *header;        /* current header */
  44.   uint8 *data;                  /* pointer to archive member */
  45.   unsigned long size;           /*  and its size in bytes */
  46. };
  47.